1. Field of the Invention
The present invention relates generally to read-detection in multi-level cell (MLC) memory, and more particularly, to methods and an apparatus for detecting codewords stored in multi-level memory cells on readout of MLC memory.
2. Description of the Related Art
In MLC memory, the fundamental storage unit (the “cell”) can be set to q>2 different states, or “levels”, permitting storage of more than one bit per memory cell. Detection of stored data relies on identifying the different cell levels on readback. In solid-state memory such as flash memory and phase change memory (PCM), for example, the different cell levels exhibit different electrical resistance characteristics which can be detected via current or voltage measurements on the cells. When writing information in MLC memory, each cell can be used to store a qary symbol with each of the q possible symbol values being represented by a different cell level. On readout of multi-level cells, the read signal level is compared with a set of reference signal levels indicative of the q cell levels in order to determine which level each cell is set to and thus detect the stored symbol value.
A problem in MLC memory is that the physical quantity measured during cell readout is subject to variability, e.g. due to drift in measured values with time or cell usage. For example, the electrical resistance of PCM cells drifts upwards with time in a stochastic manner. This drift can be data-dependent, i.e. can vary for different cell levels. As another example, the physical quantity measured in flash memory cells is the transistor's threshold voltage and this drifts upwards as a function of the number of write/erase cycles the cell is subjected to. Cell readout can also be hampered by noise, causing further variation in read signal levels. For any given stored symbol value and hence cell level, therefore, the actual read signal level obtained on cell-readout is variable.
Level variability is a serious problem for multi-level storage in that it severely compromises reliability. The readback values of neighbouring levels can interfere with one another, e.g. due to upward drift of the lower level towards the upper level over time, causing detection errors. The closer the initial spacing between levels, the more susceptible they are to this problem. Hence, packing higher numbers of levels per memory cell becomes more difficult due to the increased likelihood of error during detection. On the other hand, packing more bits per cell is a crucial requirement for all memory technologies, being the best known way of reducing manufacturing cost per bit. For efficient performance of MLC devices, therefore, the codeword detection system must accommodate the variability in read signal level distributions.
A read detection system which addresses level variability issues is described in copending International Patent Application no. PCT/IB2012/053237, filed Jun. 27, 2012 (WO 2013/046066 A1). This discloses a drift-resistant technique for read-detection of permutation-based codes in MLC memory. The codes in question are length-N, qary-symbol codes, whereby each codeword has N symbols and each symbol can take one of q symbol values. Each symbol is recorded in a respective q-level cell by setting the cell to a level dependent on the qary symbol value. The system first derives estimates for the q reference signal levels for cell levels, then uses these reference levels for codeword detection. The system exploits the property of permutation-based codes that all codewords are permutations of a known set of N-symbol vectors, referred to herein as “initial vectors”, whose symbols are ordered according to symbol value. Memory cells are read in batches to obtain read signals corresponding to a group of codewords. Each read signal has N signal components corresponding to respective symbols of a codeword, and these components are ordered according to signal level to obtain an ordered read signal for each codeword. Components of these ordered read signals are related to symbols of the known set of initial vectors via a process which involves averaging ordered read signals and relating the averaged signal components to symbol values using predefined probabilities of occurrence of different symbol values at different symbol positions as derived from the initial vectors. This reduces the problem of finding the q drifted reference signal levels to the problem of solving an over-determined system of N linear equations for the q unknown reference levels. Estimates are thus obtained for the reference signal levels for the q cell levels, and these reference signal levels are then used for detection of the current group of codewords. The subsequent detection process of PCT/IB2012/053237 involves a first detection stage wherein the initial vector which most-closely corresponds to a read signal is determined via a vector-based minimum-difference technique. This involves comparing the ordered read signal to each initial vector and selecting the “closest” vector according to some minimum difference criterion. Optionally, statistical data is then calculated for the distributions of read signal components corresponding to each cell level. This statistical data provides refined estimates for the reference signal levels, and is used in a second stage of the detection process. In this stage, the initial vector which most-closely corresponds to a read signal is again determined via a vector-based technique. The ordered read signal is again compared to each initial vector, with the closest vector being selected here according to a statistically-based criterion such as a MAP (maximum-a-posteriori) or ML (maximum-likelihood) criterion which exploits the aforementioned statistical data. The output codeword can be obtained from the initial vector identified for a read signal in the first or second detection stage by applying an inverse permutation to that initial vector. This inverse permutation is the inverse of the permutation of the read signal which ordered the components according to signal level to produce the ordered read signal for the codeword.
The detection system of PCT/IB2012/053237 is self-adaptive in that it uses the actual cells storing encoded user data to estimate the reference levels used for detection of those cells on readback, thereby accounting for level variability on a dynamic basis. Another such technique is described in copending UK Patent Application no. 1203496.3, filed 29 Feb. 2012 (US20130227380 A1). In this technique, the signal components of the entire group of read signals are ordered according to signal value. The resulting ordered component sequence is then partitioned to obtain a plurality of segments each corresponding to a different memory cell level. The size (i.e. number of components) of each of these segments is determined based on predetermined frequency data indicative of expected frequency of occurrence of the corresponding level in use of the code. The signal components in these segments can then be used to obtain the set of q current reference signal levels.